

import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;


public class FoodDepot extends Rectangle{

	
	/**
	 * die Wertigkeit / Guete des Futters (Defaultwert=-270)
	 * je niedriger desto hoeherwertig ist das Futter
	 */
	private int degree=-270;
	/**
	 * der Typ/ die Art des FoodDepots
	 */
	private VARIETIES type;
	
	/**
	 * Feld mit sprechenden Namen fuer die moeglichen Arten von FoodDepots
	 */
	public static enum VARIETIES {standard,apple,banana,meat};
	/**
	 * Wertigkeiten der verschiedenen Arten des Futters
	 */
	public int[] degrees={-270,-300,-320,-400};
	
	/**
	 * Kosntruktor
	 * @param p - Mittelpunkt des Depots
	 * @param s - Seitenlaenge des Depots
	 * @param t - Art des Futters
	 */
	public FoodDepot(Point p, int s, VARIETIES t) {
		super(p, s);
		type=t;
		degree=degrees[type.ordinal()];
	}

	/**
	 * Copy Konstruktor
	 * @param f - zu kopierendes FoodDepot
	 */
	public FoodDepot(FoodDepot f){
		super(f);
		this.degree=f.degree;
		this.type=f.type;
	}
	
	/**
	 * Cpoy Konstruktor bei dem ein neuer Wert fuer die Art des Futters mit 
	 * angegeben werden kann
	 * @param f - zu kopierendes Futterdepot
	 * @param t - neue Art des Futters
	 */
	public FoodDepot(FoodDepot f,VARIETIES t){
		super(f);
		this.degree=degrees[t.ordinal()];
		this.type=t;
	}
	
	/**
	 * Konstruktor
	 * @param x -Koordinate des Mittelpunktes
	 * @param y -Koordinate des Mittelpunktes
	 * @param s - Seitenlaenge
	 * @param t - Art des Futters
	 */
	public FoodDepot(int x, int y, int s,VARIETIES t){
		super(x,y,s);
		type=t;
		degree=degrees[type.ordinal()];
	}

	/**
	 * die Wertigkeit des FoodDepots
	 * @return
	 */
	public int getDegree(){
		return this.degree;
	}
	
	/**
	 * die Art des FoodDepots
	 * @return
	 */
	public VARIETIES getType(){
		return this.type;
	}
	
	/**
	 * setzt die Art des FoodDepots
	 * @param t 
	 */
	public void setType(VARIETIES t){
		this.type=t;
		this.degree=degrees[t.ordinal()];
	}
	
	/**
	 * laedt das Hintergrundbild fuer das jeweilige Futterdepot
	 * @return Hintergrundbild
	 */
	public  BufferedImage loadImage(){
		try {
			bi =ImageIO.read(getClass().getResourceAsStream("/images/"+type+".png"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
		System.err.println("Failed to load image for feed depot of type "+type+".");
		}
		return bi;
	}
}

